<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Eder
 */
class FichaDAO {
    
    var $className;
    
    public function __construct() {
        $this->className = 'FichaDAO';
        LogUtil::info("class $this->className", "__construct");
    }

    public function __destruct() {
        LogUtil::info("class $this->className", "__destruct");
    }
    
    public function obtenerFichas() {
        LogUtil::info("class $this->className", "obtenerFichas");
        global $wpdb;  
        $tempFichas = $wpdb->get_results('SELECT   id,
                                                    Medico_id,
                                                    Horario_id,
                                                    nombre,
                                                    email,
                                                    telefono,
                                                    dni,
                                                    fecha_cita,
                                                    motivo,
                                                    estado,
                                                    fecha_registro,
                                                    ip,
                                                    token
                                            FROM 
                                                    wp_sisres_ficha'
                                          , ARRAY_A);

        $fichas = array();
        $i = 0;
        if (!empty($tempFichas)) {
            foreach ($tempFichas as $tempFicha) {
                $fichas[$i++] = $this->cargarFicha($tempFicha);
            }
        }
        return $fichas;
    }
    
    public function obtenerFichaPorId($id) {
        LogUtil::info("class $this->className", "obtenerFichaPorId");
        global $wpdb;  
        $tempFicha = $wpdb->get_row('SELECT   id,
                                                Medico_id,
                                                Horario_id,
                                                nombre,
                                                email,
                                                telefono,
                                                dni,
                                                fecha_cita,
                                                motivo,
                                                estado,
                                                fecha_registro,
                                                ip,
                                                token
                                            FROM 
                                                wp_sisres_ficha 
                                            WHERE
                                                id = '.$id
                                          , ARRAY_A);
        $ficha = $this->cargarFicha($tempFicha);
        return $ficha;
    }
    
    public function obtenerFichasPorDatosAdicionales($ficha) {
        LogUtil::info("class $this->className", "obtenerFichasPorDatosAdicionales");
        global $wpdb;  
        LogUtil::info("class $this->className", "fecha viaja::::::::::::::::::::::".$ficha->fecha_cita);
        $tempFichas = $wpdb->get_results('SELECT   id,
                                                    Medico_id,
                                                    Horario_id,
                                                    nombre,
                                                    email,
                                                    telefono,
                                                    dni,
                                                    fecha_cita,
                                                    motivo,
                                                    estado,
                                                    fecha_registro,
                                                    ip,
                                                    token
                                            FROM 
                                                    wp_sisres_ficha
                                            WHERE
                                                    1=1
                                                    AND Medico_id = "'.$ficha->Medico_id.'"
                                                    AND Horario_id = "'.$ficha->Horario_id.'"
                                                    AND DATE_FORMAT(fecha_cita,"%d/%m/%Y")  = "'.$ficha->fecha_cita.'"'                                            
                                          , ARRAY_A);

        $fichas = array();
        $i = 0;
        if (!empty($tempFichas)) {
            foreach ($tempFichas as $tempFicha) {
                $fichas[$i++] = $this->cargarFicha($tempFicha);
            }
        }
        return $fichas;
    }
    
    public function guardarFicha($ficha){
        LogUtil::info("class $this->className", "guardarFicha");
        global $wpdb;   
        date_default_timezone_set("America/Lima");
        $data_array = array( 
            'Medico_id' => $ficha->Medico_id,  
            'Horario_id' => $ficha->Horario_id,   
            'nombre' => $ficha->nombre,  
            'email' => $ficha->email,  
            'telefono' => $ficha->telefono,  
            'dni' => $ficha->dni,
            'fecha_cita' => Util::girarFecha($ficha->fecha_cita),  
            'motivo' => $ficha->motivo,
            'estado' => EstadoFichaType::Creada,            
            'fecha_registro' => date("Y-m-d H:i:s",Util::obtenerHoraActualPeru()),  
            'ip' => $ficha->ip,  
            'token' => $ficha->token
        );
        $wpdb->insert('wp_sisres_ficha', $data_array);
        return $wpdb->insert_id;
    }
    
    public function actualizarEstadoFicha($id,$estado){
        LogUtil::info("class $this->className", "actualizarEstadoFicha");
        LogUtil::debug("class $this->className", "id=$id estado=$estado");
        global $wpdb;
	$wpdb->query("UPDATE wp_sisres_ficha SET estado ='$estado' WHERE id = '$id'");
        return true;
    }
    
    private function cargarFicha($tempFicha){   
        LogUtil::info("class $this->className", "cargarFicha");
        $ficha = new Ficha();
        $ficha->id = $tempFicha['id'];  
        $ficha->Medico_id = $tempFicha['Medico_id'];   
        $ficha->Horario_id = $tempFicha['Horario_id'];   
        $ficha->nombre = $tempFicha['nombre'];   
        $ficha->email = $tempFicha['email'];   
        $ficha->telefono = $tempFicha['telefono']; 
        $ficha->dni = $tempFicha['dni'];
        $ficha->fecha_cita = $tempFicha['fecha_cita'];
        $ficha->motivo = $tempFicha['motivo']; 
        $ficha->estado = $tempFicha['estado']; 
        $ficha->fecha_registro = $tempFicha['fecha_registro'];   
        $ficha->ip = $tempFicha['ip'];   
        $ficha->token = $tempFicha['token'];
        return $ficha;
    }

}
?>
